package com.hhit.bigscreenbackmanage.service.impl.tgygl;

import com.hhit.bigscreenbackmanage.dao.tgygl.TTgyglGzdpMapper;
import com.hhit.bigscreenbackmanage.entity.tgygl.TTgyglGzdp;
import com.hhit.bigscreenbackmanage.service.tgygl.TTgyglGzdpService;
import org.seimicrawler.xpath.JXNode;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;

/**
 * 工作点评
 */
@Service
public class TTgyglGzdpServiceImpl implements TTgyglGzdpService {

    @Autowired
    private TTgyglGzdpMapper tTgyglGzdpMapper;

    @Override
    public int deleteByPrimaryKey(Integer id) {
        return 0;
    }

    @Override
    public int insert(TTgyglGzdp record) {
        return 0;
    }

    @Override
    public int insertSelective(TTgyglGzdp record) {
        return 0;
    }

    @Override
    public TTgyglGzdp selectByPrimaryKey(Integer id) {
        return null;
    }

    @Override
    public int updateByPrimaryKeySelective(TTgyglGzdp record) {
        return 0;
    }

    @Override
    public int updateByPrimaryKey(TTgyglGzdp record) {
        return 0;
    }

    @Override
    public int insert(List<JXNode> jxNode, int id) throws Exception {
        System.out.println(id);

        TTgyglGzdp tTgyglGzdp = new TTgyglGzdp();        // 二、六月份工作点评

        AtomicInteger yfgzdpIndex = new AtomicInteger(); // 月份工作点评位置

        AtomicInteger zdgzIndex = new AtomicInteger();   // 重点工作


        AtomicInteger contentIndex = new AtomicInteger();   // 介绍内容
        AtomicInteger gzldIndex = new AtomicInteger();   // 工作亮点
        AtomicInteger gzldBtjsIndex = new AtomicInteger(); //工作亮点本体建设方面
        AtomicInteger gzldSdzcIndex = new AtomicInteger(); //工作亮点属地政处方面
        AtomicInteger czbzIndex = new AtomicInteger();   // 存在不足
        AtomicInteger czbzBtjsIndex = new AtomicInteger(); //存在不足本体建设方面
        AtomicInteger czbzSdzcIndex = new AtomicInteger(); //存在不足属地政处方面


        jxNode.forEach(item->{
            if (item.toString().indexOf("月份工作点评")!=-1) { // 工作点评
                yfgzdpIndex.set(jxNode.indexOf(item));
            }
            if (item.toString().indexOf("月份重点工作")!=-1) { // 重点工作
                zdgzIndex.set(jxNode.indexOf(item));
            }
        });

        //截取出 月份工作点评 JXNodeList
        List<JXNode> gzdpJxnList = jxNode.subList(yfgzdpIndex.get(), zdgzIndex.get());
        System.out.println(gzdpJxnList);
        gzdpJxnList.forEach(item->{
            if (item.toString().indexOf("工作亮点")!=-1) { // 工作亮点
                gzldIndex.set(gzdpJxnList.indexOf(item));
            }
            if (item.toString().indexOf("存在不足")!=-1) { // 存在不足
                czbzIndex.set(gzdpJxnList.indexOf(item));
            }
        });

        //两种情况1、没写工作亮点及存在不足
        if (gzldIndex.get()==0&&czbzIndex.get()==0) { //统一写到工作亮点部分(本体建设、属地政处)
            gzdpJxnList.forEach(item->{
                if (item.toString().indexOf("本体建设方面")!=-1) { // 本体建设方面
                    gzldBtjsIndex.set(gzdpJxnList.indexOf(item));
                }
                if (item.toString().indexOf("属地政处方面")!=-1) { // 属地政处方面
                    gzldSdzcIndex.set(gzdpJxnList.indexOf(item));
                }
            });
            //截取出 工作亮点本体建设方面 gzldBtjs JXNodeList
            List<JXNode> gzldBtjsJxnList = gzdpJxnList.subList(gzldBtjsIndex.get(), gzldSdzcIndex.get());

            //截取出 工作亮点属地政处方面 gzldSdzc JXNodeList
            List<JXNode> gzldSdzcJxnList = gzdpJxnList.subList(gzldSdzcIndex.get(), gzdpJxnList.size());

            System.out.println(gzldBtjsJxnList);
            System.out.println(gzldSdzcJxnList);

            tTgyglGzdp.setContent("");
            tTgyglGzdp.setGzldBtjs(gzldBtjsJxnList.toString().substring(1, gzldBtjsJxnList.toString().length()-1));
            tTgyglGzdp.setGzldSdzc(gzldSdzcJxnList.toString().substring(1, gzldSdzcJxnList.toString().length()-1));
            tTgyglGzdp.setFileId(id);

            tTgyglGzdpMapper.insert(tTgyglGzdp);
        }
        //两种情况2、写工作亮点及存在不足
        if (gzldIndex.get()!=0&&czbzIndex.get()!=0) {
            //截取出 内容介绍 content JXNodeList
            List<JXNode> contentJxnList = gzdpJxnList.subList(1, gzldIndex.get());
            //截取出 工作亮点 gzld JXNodeList
            List<JXNode> gzldJxnList = gzdpJxnList.subList(gzldIndex.get(), czbzIndex.get());
            //截取出 存在不足 czbz JXNodeList
            List<JXNode> czbzJxnList = gzdpJxnList.subList(czbzIndex.get(), gzdpJxnList.size());
            System.out.println(czbzJxnList);

            gzldJxnList.forEach(item->{
                if (item.toString().indexOf("本体建设方面")!=-1) { // 本体建设方面
                    gzldBtjsIndex.set(gzldJxnList.indexOf(item));
                }
                if (item.toString().indexOf("属地政处方面")!=-1) { // 属地政处方面
                    gzldSdzcIndex.set(gzldJxnList.indexOf(item));
                }
            });
            //截取出 工作亮点本体建设方面 gzldBtjs JXNodeList
            List<JXNode> gzldBtjsJxnList = gzldJxnList.subList(gzldBtjsIndex.get(), gzldSdzcIndex.get());

            //截取出 工作亮点属地政处方面 gzldSdzc JXNodeList
            List<JXNode> gzldSdzcJxnList = gzldJxnList.subList(gzldSdzcIndex.get(), gzldJxnList.size());

            //存在不足解析
            czbzJxnList.forEach(item->{
                if (item.toString().indexOf("本体建设方面")!=-1) { // 本体建设方面
                    czbzBtjsIndex.set(czbzJxnList.indexOf(item));
                }
                if (item.toString().indexOf("属地政处方面")!=-1) { // 属地政处方面
                    czbzSdzcIndex.set(czbzJxnList.indexOf(item));
                }
            });
            //截取出 存在不足本体建设方面 czbzBtjs JXNodeList
            List<JXNode> czbzBtjsJxnList = czbzJxnList.subList(czbzBtjsIndex.get(), czbzSdzcIndex.get());

            //截取出 存在不足属地政处方面 czbzSdzc JXNodeList
            List<JXNode> czbzSdzcJxnList = czbzJxnList.subList(czbzSdzcIndex.get(), czbzJxnList.size());




            tTgyglGzdp.setContent(contentJxnList.toString().substring(1, contentJxnList.toString().length()-1));
            tTgyglGzdp.setGzldBtjs(gzldBtjsJxnList.toString().substring(1, gzldBtjsJxnList.toString().length()-1));
            tTgyglGzdp.setGzldSdzc(gzldSdzcJxnList.toString().substring(1, gzldSdzcJxnList.toString().length()-1));
            tTgyglGzdp.setCzbzBtjs(czbzBtjsJxnList.toString().substring(1, czbzBtjsJxnList.toString().length()-1));
            tTgyglGzdp.setCzbzSdzc(czbzSdzcJxnList.toString().substring(1, czbzSdzcJxnList.toString().length()-1));

            tTgyglGzdp.setFileId(id);
            tTgyglGzdpMapper.insert(tTgyglGzdp);
        }

        return 0;
    }

    @Override
    public List<TTgyglGzdp> selectListByFileId(Integer fileId) {
        List<TTgyglGzdp> resulList = null;
        TTgyglGzdp tTgyglGzdp = new TTgyglGzdp();
        tTgyglGzdp.setFileId(fileId);
        try {
            resulList = tTgyglGzdpMapper.selectByBean(tTgyglGzdp);
        } catch (Exception e) {
            e.printStackTrace();
        }

        return resulList;
    }
}
